// 枚举
// 默认值的索引从 0 开始
enum Sex {
  Man,
  Woman,
  Other
}

// 调用
let people: Sex = Sex.Man

console.log(people) // 0

// 自定义枚举值
enum Positions {
  Top,
  Left = 5,
  Right,
  Bottom
}

console.log(Positions.Top) // 0
// 反向映射
console.log(Positions[0]) // Top
console.log(Positions.Left) // 5
console.log(Positions[5]) // Left
console.log(Positions.Right) // 6

// 字符串枚举
// 以字符串来做为值
enum Direction {
  Noorth = "north",
  South = "south"
}

console.log(Direction.Noorth) // north

// 异构枚举
enum Enum {
  A,
  B,
  C = "C",
  D = "D",
  // 如果前一个枚举属性的值是字符串，则后一个枚举值必须赋值 
  E = 8,
  F
}

console.log(Enum.A) // 0
console.log(Enum[0]) // A
console.log(Enum.F)  // 9